package com.guomei.mapper.curse;

import com.guomei.bean.curse.DistributionApply;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 分销申请表数据访问接口
 */
@Mapper
public interface DistributionApplyMapper {
    /**
     * 根据ID查询分销申请
     */
    DistributionApply selectById(Long id);

    /**
     * 根据课程ID和分销人ID查询
     */
    DistributionApply selectByCourseIdAndDistributorId(@Param("courseId") Long courseId, @Param("distributorId") Long distributorId);

    /**
     * 根据用户ID查询分销申请列表
     */
    List<DistributionApply> selectByUserId(@Param("userId") Long userId, @Param("status") Short status);

    /**
     * 根据课程ID查询分销申请列表
     */
    List<DistributionApply> selectByCourseId(@Param("courseId") Long courseId, @Param("status") Short status);

    /**
     * 根据老师ID查询分销申请列表
     */
    List<DistributionApply> selectByTeacherId(@Param("teacherId") Long teacherId, @Param("status") Short status);

    /**
     * 根据状态查询分销申请列表
     */
    List<DistributionApply> selectByStatus(Short status);

    /**
     * 新增分销申请
     */
    int insert(DistributionApply distributionApply);

    /**
     * 更新分销申请状态
     */
    int updateStatus(@Param("id") Long id, @Param("status") Short status,
                     @Param("reviewTime") LocalDateTime reviewTime, @Param("reviewRemark") String reviewRemark);

    /**
     * 更新分销申请信息
     */
    int updateById(DistributionApply distributionApply);

    /**
     * 根据ID删除
     */
    int deleteById(Long id);
}
